package hpp.meituanTest;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 给你六种面额 1、5、10、20、50、100 元的纸币，假设每种币值的数量都足够多，编写程序求组成N元（N为0~10000的非负整数）的不同组合的个数。
 * Created by hpp on 2017/8/28.
 */

public class Money {

    //用dp[n]来存组成n元的不同组合的个数
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();
        long []dp = new long[1+n];
        Arrays.fill(dp, 1);
        int [] w={1,5,10,20,50,100};
//        int [] w={1,2,3,4,5,6};
        for(int i=1;i<w.length;i++){
            for(int j=w[i];j<=n;j++){
                dp[j]+=dp[j-w[i]];
            }
        }
        System.out.println(dp[n]);
    }

}
